#include <iostream>
#include <unistd.h>
using namespace std;

int main()
{
    int* p = nullptr;
    *p = 10;
    cout << "野指针问题" << endl;

    return 0;
}



// #include <stdio.h>
// int func(int *p)
// {
//     int y = *p;
//     return y;
// }
// int main()
// {
//     int *p = NULL;
//     return func(p);
// }
// #include <stdio.h>
// #include <sys/types.h>
// #include <unistd.h>

// int main()
// {
//     printf("pid:%d\n", getpid());
//     while (1);
//     return 0;
// }

// //访问野指针引发的硬件中断
// #include <stdio.h>
// #include <signal.h>
// void handler(int sig)
// {
//     printf("catch a sig : %d\n", sig);
//     sleep(2);
// }

// int main()
// {
//     signal(SIGSEGV, handler);
//     sleep(1);
//     int *p = NULL;
//     *p = 100;
//     while (1)
//         ;
//     return 0;
// }

// 除零引发的硬件中断
//  #include <stdio.h>
//  #include <signal.h>

// void handler(int sig)
// {
//     printf("catch a sig : %d\n", sig);
//     sleep(2);
// }
// // v1
// int main()
// {
//     signal(SIGFPE, handler); // (8) SIGFPE
//     sleep(1);
//     int a = 10;
//     a /= 0;
//     while (1);
//     return 0;
// }